package com.d2rv.offscreen;

import com.d2rv.guide.GoalManager;
import com.d2rv.model.CityModelManager;
import com.d2rv.skybox.SkyboxManager;
import com.d2rv.user.UserManager;
import processing.core.PApplet;

/**
 * This class is the manager of the scene user.
 *
 * @author Darrieutort A., Dupouy A., Rossignol L., Van Poucke A.
 */
public class SceneUserManager {

    private OffScreenUserManager offscreenusermanager;

    /**
     * Default constructor
     *
     * @param parent the current application
     * @param usermanager the manager of the user
     * @param citymodelmanager the manager of the city model
     * @param skyboxmanager the manager of the skybox
     * @param goalmanager the manager of the goal
     */
    public SceneUserManager(PApplet parent, UserManager usermanager, CityModelManager citymodelmanager, SkyboxManager skyboxmanager, GoalManager goalmanager) {
        this.offscreenusermanager = new OffScreenUserManager(parent, usermanager, citymodelmanager, skyboxmanager, goalmanager);
    }

    /**
     *Calls the draw method of the offscreen user manager
     * 
     * @param mode different mode between stereo et mono 
     */
    public void draw(int mode) {
        this.offscreenusermanager.draw(mode);
    }

    /**
     * Calls the show method the offscreen user manager
     * 
     * @param parent the current application
     * @param mode different mode between stereo et mono 
     */
    public void show(PApplet parent, int mode) {
        this.offscreenusermanager.show(parent, mode);
    }
    
    /**
     * Returns the manager of the user offscreen.
     * 
     * @return the manager of the user offscreen
     */
    public OffScreenUserManager offscreenusermanager(){
        return this.offscreenusermanager;
    }
}